﻿using Persistencia;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dlls
{
    public class MovimentoItemDLL
    {
        Context context;

        public MovimentoItemDLL()
        {
            context = new Context();

        }
        public IEnumerable<MovimentoItem> List(int CodMovimento)
        {
            return (from o in context.MovimentosItems where o.CodMovimento == CodMovimento 
                    select o).ToList();
        }
        public IEnumerable<MovimentoItem> List()
        {
            return (from o in context.MovimentosItems select o).ToList();
        }

        public MovimentoItem ReturnMovimentoItem(int codMovimento)
        {
            return context.MovimentosItems.SingleOrDefault(e => e.CodMovimento == codMovimento);
        }

        public void Insert(MovimentoItem ItensMovimento)
        {
            context.MovimentosItems.InsertOnSubmit(ItensMovimento);
            context.SubmitChanges();
        }

        public void Update (int CodMovimento,MovimentoItem ItensMovimento)
        {
            MovimentoItem movItem = context.MovimentosItems.FirstOrDefault(o => o.CodMovimento == CodMovimento) ;
            movItem.CodProduto    = ItensMovimento.CodProduto;
            movItem.Quantidade    = ItensMovimento.Quantidade;
            movItem.ValorUnitario = ItensMovimento.ValorUnitario;
            movItem.ValorTotal    = ItensMovimento.ValorTotal;
            context.SubmitChanges();
            //return movItem ;
        }

        public MovimentoItem getMovimentoItems(int CodMovimento)
        {
            return context.MovimentosItems.SingleOrDefault(movIt => movIt.CodMovimento == CodMovimento);

        }

        public void AtualizarEstoque(int iCodMovimento, int iCodProduto, decimal iValorUnitario, decimal iQuantidade,decimal iValorTotal, char iTipoMovimento)
        {
            MovimentoItem movItem = new MovimentoItem();
            movItem.CodMovimento = iCodMovimento;
            movItem.CodProduto = iCodProduto;
            movItem.ValorUnitario = iValorUnitario;
            movItem.Quantidade = iQuantidade;
            movItem.ValorTotal = iValorTotal;
            movItem.TipoMovimento = iTipoMovimento;

            context.MovimentosItems.InsertOnSubmit(movItem);
            context.SubmitChanges();
        }

    }
}
